﻿using System;
using System.Collections.Generic;
using System.Data;

namespace SistemaCarros.Entidades
{
    [Serializable]
    public class Fabricante
    {
        public int Id { get; set; }
        public int AnoFundacao { get; set; }

        public string Nome { get; set; }
        public string PaisOrigem { get; set; }

        public List<Fabricante> Carregar()
        {
            string comandoSQL = "SELECT id, nome, pais_origem, ano_fundacao FROM fabricantes";
            DataSet ds = Db.ExecutarSQL(comandoSQL);
            List<Fabricante> lst = new List<Fabricante>();

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                lst.Add(new Fabricante()
                {
                    Id = Convert.ToInt32(dr["id"].ToString()),
                    Nome = dr["nome"].ToString(),
                    PaisOrigem = dr["pais_origem"].ToString(),
                    AnoFundacao = Convert.ToInt32(dr["ano_fundacao"].ToString())
                });
            }

            return lst;
        }
        public void CarregarDados()
        {
            string comandoSQL = "SELECT nome, pais_origem, ano_fundacao FROM fabricantes WHERE id = @id;";
            comandoSQL = comandoSQL.Replace("@id", Id.ToString());

            DataSet ds = Db.ExecutarSQL(comandoSQL);

            DataRow dr = ds.Tables[0].Rows[0];
            Nome = dr["nome"].ToString();
            PaisOrigem = dr["pais_origem"].ToString();
            AnoFundacao = Convert.ToInt32(dr["ano_fundacao"].ToString());
        }

        public void Salvar()
        {
            string comandoSQL = "INSERT INTO fabricantes VALUES (@id, '@nome', '@pais_origem', @ano_fundacao);";
            comandoSQL = comandoSQL.Replace("@id", Id.ToString());
            comandoSQL = comandoSQL.Replace("@nome", Nome);
            comandoSQL = comandoSQL.Replace("@pais_origem", PaisOrigem);
            comandoSQL = comandoSQL.Replace("@ano_fundacao", AnoFundacao.ToString());

            Db.ExecutarComando(comandoSQL);
        }
        public void Excluir()
        {
            string comandoSQL = "DELETE FROM fabricantes WHERE id = @id;";
            comandoSQL = comandoSQL.Replace("@id", Id.ToString());

            Db.ExecutarComando(comandoSQL);
        }
        public void Editar()
        {
            string comandoSQL = "UPDATE fabricantes SET nome = '@nome', ano_fundacao = @ano_fundacao, ";
            comandoSQL += "pais_origem = '@pais_origem' WHERE id = @id;";

            comandoSQL = comandoSQL.Replace("@id", Id.ToString());
            comandoSQL = comandoSQL.Replace("@nome", Nome);
            comandoSQL = comandoSQL.Replace("@pais_origem", PaisOrigem);
            comandoSQL = comandoSQL.Replace("@ano_fundacao", AnoFundacao.ToString());

            Db.ExecutarComando(comandoSQL);
        }
    }
}